home *** CD-ROM | disk | FTP | other *** search
- {
- AK> howdie, nice fader! i was wandering if you would be able
- AK> to comment the program and repost it. i.e what the ports
- AK> are etc for us less experienced programmers...
-
- Okay, if you don't quote so much next time.
-
- }
-
- program copper;
- { bar-fade in, copper v7.0, by Bas van Gaalen, Holland, PD }
- uses crt;
- const size=20; { number of text-lines }
- var pal:array[0..3*size-1] of byte;
-
- { increase first value in the pal-array (the one representing red), and scroll
- that in the array }
- procedure incbars;
- var i:word;
- begin
- if pal[0]<63 then inc(pal[0]);
- for i:=3*size-2 downto 0 do pal[i+1]:=pal[i];
- end;
-
- procedure copperbars;
- var cc,l,j:word;
- begin
- asm cli end;
- while (port[$3da] and 8)<>0 do; { vertical retrace }
- while (port[$3da] and 8)=0 do;
- cc:=0;
- for l:=0 to size-1 do begin
- port[$3c8]:=1; { set pal-idx number (1=blue) }
- port[$3c9]:=pal[cc]; { set first two pal-value's (red and green }
- port[$3c9]:=pal[cc+1]; { intensities }
- for j:=0 to 15 do begin { 16 vertical retraces = one text line }
- while (port[$3da] and 1)<>0 do;
- while (port[$3da] and 1)=0 do;
- end;
- port[$3c9]:=pal[cc+2]; { set last pal-value (blue), and thus activate
- new palette }
- inc(cc,3);
- end;
- asm sti end;
- end;
-
- var i:byte;
- begin
- textmode(co80); { 25 lines mode }
- fillchar(pal,sizeof(pal),0); { clear palette array }
- copperbars; { default = black -> otherwise flash of blue will appear }
- textcolor(1); { set text to blue (now black, 'cos pal changed) }
- writeln;
- writeln('Is this what you mean?'); writeln;
- for i:=1 to 15 do writeln('Test line ',i);
- repeat
- incbars;
- copperbars;
- until keypressed; { do stuff until keypressed... }
- textmode(lastmode); { back to last mode }
- end.
-